package com.shujia.wyh.day16;

/*
        把一个字符串的首字母转成大写，其余为小写。(只考虑英文大小写字母字符)

        分析：
            "JavaHaDOOpHIve" --->  "Javahadoophive"

        解决方案：
            方案1：
                1、把字符串中的所有字符全部转小写
                2、获取第一个字符，转大写

            方案2：
                1、先获取第一个字符
                2、再获取除了第一个以外的其余字符
                3、把第一步获取到的第一个字符转大写
                4、再把第二步获取到的其余字符转小写
                5、把第三步和第四步的结果进行做拼接
                6、输出

 */
public class StringTest3 {
    public static void main(String[] args) {
        //定义一个字符串
        String s = "JavaHaDOOpHIve";

        System.out.println("============按照第二种方式来实现===============");
        //1、先获取第一个字符
//        char ch = s.charAt(0);
        String s1 = s.substring(0, 1);

        //2、再获取除了第一个以外的其余字符
        String s2 = s.substring(1);

        //3、把第一步获取到的第一个字符转大写
        String s3 = s1.toUpperCase();

        //4、再把第二步获取到的其余字符转小写
        String s4 = s2.toLowerCase();

        //5、把第三步和第四步的结果进行做拼接
        String result = s3.concat(s4);

        System.out.println("JavaHaDOOpHIve转换后的结果为：" + result);

        System.out.println("******链式编程改写*********************");
//        System.out.println(s.substring(0, 1).toUpperCase().concat(s.substring(1).toLowerCase()));
        String concat = s.substring(0, 1)
                .toUpperCase()
                .concat(s.substring(1)
                        .toLowerCase());

        System.out.println(concat);

        System.out.println("============按照第一种方式来实现===============");
        //1、把字符串中的所有字符全部转小写
        String s5 = s.toLowerCase();
        //2、将字符串转成字符数组
        char[] chars = s5.toCharArray();

        //4、把第一个字符转大写
        String s6 = String.valueOf(chars[0]).toUpperCase();

        //5、转大写后赋值给ch
        chars[0] = s6.charAt(0);

        //6、将字符数组转成字符串
        String s7 = new String(chars);

        //7、输出
        System.out.println("JavaHaDOOpHIve转换后的结果为：" + s7);


    }
}
